package cn.pzhuWEB.llk.dao;

import cn.pzhuWEB.llk.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
@Repository
public interface IStudentDao {
    /**
     * 查询所有
     * @return
     */
    List<User> findAll();

    /**
     * 注册用户
     * @param user
     */
    void register(User user);

    /**
     * 更新4x4游戏个人排行个人排行
     * @param user
     */
    void updateUserGradeFour(User user);

    /**
     * 更新6x6游戏个人排行
     * @param user
     */
    void updateUserGradeSix(User user);

    /**
     * 查询4x4排行榜的成绩
     * @param user
     * @return 时间
     */
    String queryCompTimeFour(User user);

    /**
     * 查询6x6排行榜的成绩
     * @param user
     * @return 时间
     */
    String queryCompTimeSix(User user);

    /**
     * 加入4x4游戏成绩
     * @param user
     */
    void insetGradeFour(User user);

    /**
     * 加入6x6游戏成绩
     * @param user
     */
    void insetGradeSix(User user);


    /**
     * 查询用户
     * @param stuCard 输入查询用户的ID
     * @return 返回查询对象
     */
    User findByStuCard(@Param("stuCard") String stuCard);

    /**
     * 登录
     * @param user 输入登录的用户
     * @return 返回查询对象
     */
    User login(User user);

    /**
     * 4x4游戏
     * 查询个人最好排名
     * @param user 根据用户的学号以及成绩查询
     * @return 返回查询第几
     */
    Integer findGradeFourByTimeRanking(User user);

    /**
     * 6x6游戏
     * 查询个人最好排名
     * @param user 根据用户的学号以及成绩查询
     * @return 返回查询第几
     */
    Integer findGradeSixByTimeRanking(User user);

    /**
     * 查询用户排行榜:4x4
     * @return
     */
    List<User> findFourRank();

    /**
     * 查询用户排行榜:6x6
     * @return
     */
    List<User> findSixRank();

    /**
     * 插入排行榜数据（针对新用户） 4x4
     */
    void insertFourRank(User user);

    /**
     * 插入排行榜数据（针对新用户） 6x6
     */
    void insertSixRank(User user);
}
